Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

191
Visualizações
¿Por qué tengo el valor "Nan" del ciclo que resume la columna de la tabla?

Tengo un problema con este bucle. Quiero resumir los valores de la tabla, pero tengo el valor NaN de este código. ¿Debo cambiar algo o hay alguna otra solución para resumir?

 function sumUpWallet() { var walletTable = document.getElementById("usersCrypto"); let sumVal = 0; for (var i = 1; i < (walletTable.rows.length - 2); i++) { const tableData = walletTable.rows[i].cells[3]; if (tableData && tableData.textContent) { const value = parseFloat(tableData.textContent); if (!isNaN(value)) { sumVal = sumVal + value; }; }; } console.log(sumVal); document.getElementById("sumDol").innerHTML = sumVal.toFixed(2); };

La tabla es dinámica, después de hacer clic en el botón se agrega otra fila. Por ejemplo, puede verse así:

página de captura de pantalla

Tabla de ejemplo de accesibilidad

about 4 years ago · Juan Pablo Isaza
1 Respostas
Responde à pergunta

0

El problema es cuando haces:

 console.log(walletTable.rows[i].cells[3]);

obtienes el resultado de seguimiento <td>19271.71</td> en lugar de la figura 19271.71 para el primer resultado de i

Para solucionar esto, agregue .textContent al parseFloat como se muestra a continuación

 sumVal = sumVal + parseFloat(walletTable.rows[i].cells[3].textContent);

Adicional:

Parece que está accediendo a datos fuera del rango de la tabla. Debe hacer alguna validación para asegurarse de que lo que está leyendo sea válido antes de agregarlo a sumVal.

 const tableData = walletTable.rows[i].cells[3]; if (tableData && tableData.textContent) { const value = parseFloat(tableData.textContent); if (!isNaN(value)) { sumVal = sumVal + value; } }

Se agregó un ejemplo que prueba que el código anterior funciona.

 function sumUpWallet() { var walletTable = document.getElementById("usersCrypto"); let sumVal = 0; for (var i = 1; i < (walletTable.rows.length - 2); i++) { const tableData = walletTable.rows[i].cells[3]; if (tableData && tableData.textContent) { const value = parseFloat(tableData.textContent); if (!isNaN(value)) { sumVal = sumVal + value; }; }; } console.log(sumVal); document.getElementById("sumDol").innerHTML = sumVal.toFixed(2); }; sumUpWallet();
 <table id="usersCrypto" border="1"> <tr> <td> Name </td> <td> price </td> <td> Amount </td> <td> Header </td> <tr> <tr> <td> Bitcoin </td> <td> 19271.71 </td> <td> 1 </td> <td> 19271.71 </td> <tr> <tr> <td> Ethereum </td> <td> 1070.11 </td> <td> 2 </td> <td> 2140.23 </td> <tr> <tr> <td colspan="2"> </td> <td> PLN </td> <td> DOL$ </td> <tr> <tr> <td colspan="2"> Summary Value </td> <td> </td> <td id="sumDol"> </td> <tr> </table>

about 4 years ago · Juan Pablo Isaza Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda